1. Field of the Invention
This invention relates generally to computer systems and software. More particularly, the invention relates to computer-based calculation and spreadsheet systems and software.
2. Description of the Related Art
Generally, there are two types of computer programs for performing numerical calculations: spreadsheet programs and calculator programs. The advantages and disadvantages of both are discussed as follows.
Calculators
A calculator program includes a computer program that is used for performing numerical calculations. As used herein, the term xe2x80x9ccalculator programxe2x80x9d includes a type of computer program that emulates the functionality of a hand-held calculator. Calculator programs often allow data to be entered via a computer keyboard in a very intuitive way, just as on a hand-held calculator. For example, entry of the key sequence xe2x80x9c1+2+3=xe2x80x9d would usually cause the calculator program to display the result xe2x80x9c6xe2x80x9d. Calculator programs usually display a graphical image that looks like a hand held calculator which can be operated with a mouse to enter calculations instead of using a keyboard.
Many calculator programs display calculations on a display screen in a vertical format, similar to a tape produced by an adding machine. In these calculator programs, for example, entering the key sequence xe2x80x9c1+2+3xe2x80x9d would cause
1
+2
+3
to be displayed on the screen. For many people, this vertical sequence is a very intuitive way to display calculations because it is how they write arithmetic calculations on paper, and is how they have done so since early school days. In most calculator programs, the area of the screen that contains this vertical record of the keystrokes is called the xe2x80x9ctape,xe2x80x9d and that term will be used when discussing calculator programs herein. (The term xe2x80x9ctapexe2x80x9d is derived from the paper tape of an adding machine). The term xe2x80x9cvertical calculationxe2x80x9d will be used to describe this format of displaying calculations vertically. Most calculator programs allow the tape to be printed out and also to be saved in a file.
Some calculator programs have tapes that can be modified. For example, the operators and the numbers may be changed, and the result may be recalculated using the modified values. FIG. 1 and FIG. 2 show examples of calculator programs with modifiable tapes. Some of these calculator programs with modifiable tapes also allow descriptive text comments to be placed next to the numbers on the tape. For example, the previous tape could be modified to look like:
1 apple
+2 oranges
+3 bananas
Despite the intuitive way that they allow calculations to be entered and displayed, calculator programs with modifiable tapes have been relatively unsuccessful commercially. The disadvantages of modifiable tapes of existing calculator programs are discussed as follows.
First, the tapes of the existing calculator programs can contain only very simple calculations that can be expressed in the adding machine tape format. It is impossible to enter repetitive data in a tabular, spreadsheet style format; it is impossible to display calculations horizontally; it is impossible to place function invocations in the tape, and it is impossible to enter calculations with parentheses.
Second, the tapes of the existing calculator programs only allow data to be entered in a single column. It is believed that not one commercially available calculator program has broken from the paradigm of the continuous single column paper tape of an adding machine. This format makes it very difficult to organize calculations in a logical way that is easy to view and modify on a computer screen, and this format makes it impossible to have tables of data.
Third, the tapes of the existing calculator programs are difficult to modify. The editing features of these programs are often cumbersome to use.
Fourth, the tapes of the existing calculator programs are not aesthetically pleasing. For example, calculations must all be placed in a single column. The calculator programs lack the ability to specify fonts, alignment, indentation, and other formatting characteristics of the data on the tapes. The calculator programs have very limited ability to allow descriptive text to be placed in the tape. This limited ability makes it impossible to use these programs to produce a professional looking business document; at best, they are limited to use as a xe2x80x9cscratch padxe2x80x9d for numerical calculations.
Spreadsheets
Spreadsheets are computer programs that allow numbers, text data, and formulas to be stored in cells. The cells are displayed in rectangular areas on the screen and are arranged in a tabular format, i.e., in rows and columns. A single cell can contain a formula or function which may operate on multiple pieces of data stored in other cells. A cell""s number, text data, or the result of the cell""s formula or function is usually displayed in the cell that contains it.
FIG. 3 shows a typical modem spreadsheet program. The example of FIG. 3 shows data arranged as a table. The example table has cells with text, cells with numbers, and cells with formulas. Cells A1 and C3 are examples of cells that contain text data; the text in cell A2 spans several columns. Cells C2 through F2 contain numbers. Cell G2 contains a formula which adds the numbers in cells C2 through F2. FIG. 3 shows an example of what cell G2 may look like when it is being edited. When cell G2 is not being edited, it will display the result of the formula (xe2x80x9c50.00xe2x80x9d).
Spreadsheet programs have been quite commercially successful: many millions of them have been sold since they were invented in the late 1970 s. In fact, the vast majority of personal computers sold today come with a spreadsheet program pre-installed on them. Two examples of popular modem spreadsheets are xe2x80x9cLotus 1-2-3xe2x80x9d (available from Lotus Development Corporation) and xe2x80x9cMicrosoft Excelxe2x80x9d (available from Microsoft Corporation).
Despite the presence of a spreadsheet program on virtually every personal computer, there are relatively few people who actually use spreadsheets. Many people have seen spreadsheets and know what they are, but if they are asked to use a spreadsheet to perform some numerical calculations, they may be forced to admit that they don""t know how. Spreadsheets are used almost exclusively as a business tool, and very few home computer users use spreadsheets at all. Home users very rarely perform the kind of numerical calculations on repetitive tabular data for which spreadsheets are best suited.
Even within most businesses, relatively few people use spreadsheets. xe2x80x9cUsing a spreadsheetxe2x80x9d is defined here as creating a spreadsheet (e.g., entering formulas, functions and numbers) in order to record and/or calculate numerical values. After a spreadsheet has been created by an experienced user, it is often xe2x80x9cusedxe2x80x9d by other employees who merely enter data into it. For purposes of this discussion, such simple data entry will not be considered to be using a spreadsheet since it is no different than entering data into any other program and does not require any knowledge of how to perform calculations with a spreadsheet. Generally, only professional employees such as managers, financial analysts, engineers, etc., who regularly need to work with repetitive numerical data know how to use a spreadsheet for anything other than data entry.
There are two primary reasons why relatively few people use spreadsheets. First, many types of calculations are awkward to represent as tables of data and/or as formulas in cells. Spreadsheets are not good tools for data that is not repetitive and tabular in nature. Home users in particular rarely need to work with such data. Second, spreadsheets are not easy to use. They are not for novice or unsophisticated computer users. They are powerful business tools; companies often need to provide formal training for employees to learn to use spreadsheets. Many spreadsheet users find the editing features in particular to be frustrating and unintuitive.
Both calculator programs and spreadsheets have advantages and disadvantages. Calculators are intuitive and easy to use yet have very limited functionality, and spreadsheets have a great deal of functionality but are very difficult to use. Therefore, it is desirable to provide an improved system and method for numerical calculation which combines the ease of use of a calculator program with the functionality of a spreadsheet program.
The systems and methods described herein may combine the intuitive data entry and display format of a calculator program with the powerful functionality of a spreadsheet, along with many additional features, to form a new classification of numerical processing programs which may be referred to as a calcsheet. The advantages of selected features of the calcsheet are described below.
Multiple Columns of Vertical Calculations
In one embodiment, the calcsheet may include multiple columns of vertical calculations. In one embodiment, a user may type in calculations in a manner similar to the entry of calculations on a hand held calculator, and the calculations may be displayed in a vertical format in substantially any column in the calcsheet. The ability to include vertical calculations as described above in potentially multiple columns provides significant advantages over both calculator programs and spreadsheets. A calcsheet may enable data to be arranged in a tabular format like a spreadsheet. This capability may open up a whole new class of calculations of which calculator programs are not capable. For example, much more information can be placed on a single screen. Many more calculations can be placed on the screen at the same time, allowing calculations to be accessed much more easily (e.g., without scrolling up and down) when they need to be changed or examined. Furthermore, it is possible to make calculations appear much more aesthetically pleasing, such that they are suitable for professional-quality business documents. In one embodiment of a calcsheet, data can be entered in the familiar hand-held calculator format and displayed in the familiar vertical calculation format, making the calcsheet useful for a whole class of calculations for which spreadsheets are too cumbersome. Vertical calculations may therefore make a calcsheet much easier to use than a spreadsheet for a large number of users.
Hiding Fields
In one embodiment, the calcsheet provides the ability to hide fields within a column. It is not believed that this function is available in any spreadsheets or in calculator programs. This function may provide several advantages over both calculator programs and spreadsheets. Field hiding further enhances the ability of a calcsheet to be used for both vertical calculations and tabular spreadsheet style computations. In one embodiment, vertical calculations can be converted to a tabular style display by hiding the operation and/or comment fields after the calculation has been entered. Similarly, tabular data can be converted to vertical calculations by xe2x80x9cunhidingxe2x80x9d the operation fields and entering operations in them. Field hiding may make the calcsheet easier to use by allowing more data to be placed on a single screen, thus requiring less scrolling than a calculator program. Field hiding may allow a calcsheet to be less visually confusing and more aesthetically pleasing by hiding unused or unwanted fields.
Spreadsheet Lines and Vertical Calculations in the Same Document
In one embodiment, a calcsheet may include a spreadsheet line: a kind of line that only has one field which spans the width of at least one column. In one embodiment, a spreadsheet line can include a comment, a number, or a formula. The ability to combine single-field spreadsheet lines with multi-field vertical calculation lines in a calcsheet may provide a significant advantage over calculator programs in at least two ways. First, the combination may allow a calcsheet to be much easier to read and understand and much more aesthetically pleasing by allowing comments to span multiple fields. This feature may also make it possible to produce a professional-looking business document with numerical data that is entered in the same familiar, intuitive way that it would be entered on a hand-held calculator. Second, the combination may allow the calcsheet to be used for both tabular repetitive data and vertical calculations. This feature is not believed to be found in any calculator program or spreadsheet. More specifically, the same column may contain vertical calculations as well as tabular spreadsheet data. This ability may allow a calcsheet to be arranged in a logical, easy to read, and aesthetically pleasing way.
Formulas in Number Fields
In one embodiment, calcsheets may include formulas in number fields. This ability may further enhance the utility of a calcsheet for both vertical calculations and tabular, spreadsheet-style computations. In one embodiment, vertical calculations may be simplified using formulas in number fields. Instead of the three lines for a set of related expenses, for example, a calcsheet may use a simple formula to combine all the expenses into only one line. In one embodiment, vertical calculations may be used for more complex calculations. The formulas in a number field may be arbitrarily complex arithmetic expressions with parentheses and advanced mathematical, trigonometric, statistical, and business functions. Therefore, it may be possible to use vertical calculations for very complex calculations that would either be very awkward or impossible to express with a calculator program.
Changing the Order of Fields
In one embodiment, a calcsheet may include the ability to change the order of fields within a column. For example, comment fields may be displayed on the left side of the number field, and operation fields may be hidden. This is a format that is often used in corporate financial statements: descriptive comment on the left and numbers on the right. Therefore, a calcsheet, unlike a spreadsheet or calculator program, may allow data to be entered in the intuitive calculator input format and displayed in a format that is suitable for professional quality business documents.
Parentheses in Vertical Calculations
In one embodiment, a calcsheet may include the ability to put parentheses in separate lines of a vertical calculation in order to modify the order of evaluation. It is not believed that this feature can be found in any calculator program or spreadsheet.
Calculator Input Mode
In one embodiment, a calcsheet may include a calculator input mode. In this mode, as the user enters calculations in hand-held calculator format, the calcsheet responds to each character as it is entered and automatically inserts new lines, switches input focus to the appropriate fields, places characters into the appropriate fields, and performs any other tasks needed to display the calculations vertically. This feature may provide a significant advantage over existing calculator programs which fail to provide a clear visual indicator of how the tape will be modified as calculations are entered. It is believed that existing calculator programs also do not allow new vertical calculations to be entered while editing previously entered data. Spreadsheets, of course, do not support vertical calculations (as described herein) at all.
Single Key Editing and Navigation
In one embodiment, a calcsheet may be easily modified (e.g., navigated and/or edited) using single keystrokes. One advantages of a calcsheet over spreadsheets and calculator programs is the ease with which a calcsheet may be modified. In one embodiment, when editing a field in a calcsheet, the user may switch to editing any adjacent field with a single keystroke using the arrow or tab keys. Therefore, the user may navigate anywhere in a calcsheet and edit any field using only the arrow keys, which usually are grouped together on a keyboard. Single-key editing and navigation may provide a significant usability advantage. In calculator programs, it is not believed to be possible to use the keyboard to switch editing to an adjacent field. Instead, the user must double click on the adjacent field with the mouse. Spreadsheets do allow the user to switch editing to an adjacent cell with the keyboard but instead require multiple keystrokes to do so, and typically with keys that are not grouped together on the keyboard.
Subtotal Function
In one embodiment, a calcsheet may use a subtotal function. A subtotal function may be entered into a number field and may return a subtotal of one or more numeric values in number fields preceding the number field in which the subtotal function was entered. In one embodiment, the subtotal function will apply the appropriate mathematical operators to the numeric values in all the number fields above that of the subtotal function. If, however, the subtotal function follows an open parenthesis character (e.g., an open parenthesis character appears on a line preceding the line with the subtotal function), then the function will return the subtotal starting from the line containing the previous open parenthesis character. In other words, vertical parentheses may be used to select a subset of the preceding number fields to sum. In one embodiment, the subtotal function may be part of a larger mathematical formula. In other words, the subtotal function may be evaluated, and then the resulting value may be used in another formula.